<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix= "fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core" %>
<script type="text/javascript" src="../js/jquery-1.10.2.js"></script>
<script type="text/javascript">
var nchks = 0;var nick_old;

$(document).ready(function(){
	nick_old = document.getElementById('nick').value;
});
function nickchknull(){nchks=0;}
/*********************************/
//  최종확인
function check(fdata){
	var len_Base = 12;
	var len_Question = 100;
	var len_email = 40;

	if (nchks == 0){alert("닉네임 체크를 처리한 후 진행할 수 있습니다.\n닉네임 체크 버튼을 눌러주세요.");return;} 
	
	else if (!fdata.b1.value){
		alert('태어난 년도가 비어있습니다.');fdata.b1.focus();return;}
	else if (!chkDay(fdata.b1.value)) {
		fdata.b1.focus();return;}
	else if (fdata.b1.value <= 1900){
		alert('1900 년 이전 출생은 조금 심하지 않으신가요?');
		fdata.b1.value="";fdata.b1.focus();return;
		}
	else if (fdata.b1.value >= 2200){
		alert('2200 년 이후 출생은 조금 심하지 않으신가요?');
		fdata.b1.value="";fdata.b1.focus();return;
		}
	else if (!fdata.b2.value){
		alert('태어난 달이 비어있습니다.');
		fdata.b2.focus();return;}
	else if (!chkDay(fdata.b2.value)) {
		fdata.b2.focus();return;}
	else if (fdata.b2.value == 0 || fdata.b2.value > 12 ){
		alert('1~12 중에서 입력해주세요.');
		fdata.b2.value="";fdata.b2.focus();return;
		}	
	else if (fdata.b2.value.length == 1){
		fdata.b2.value = "0" + fdata.b2.value;
		}
	
	else if (fdata.b3.value.trim() == ""){	
		alert('태어난 날이 비어있습니다.');fdata.b3.focus();return;}
	else if (!chkDay(fdata.b3.value)) {fdata.b3.focus();return;}
	else if (fdata.b3.value == 0 || fdata.b3.value > 31 ){
		alert('1~31 중에서 입력해주세요.');
		fdata.b3.value="";fdata.b3.focus();return;
		}	
	else if (fdata.b3.value.length == 1){
		fdata.b3.value = "0" + fdata.b3.value;
		}

	else if (!fdata.email.value){
		alert('메일이 비어있습니다.');fdata.email.focus();return;}
	else if (len_email < txtRsLength(fdata.email.value)){
		alert(len_email + 'Byte 까지만 입력할 수 있습니다.\n(한글은 2Byte 입니다.)');
		fdata.email.value = txtRsCut(fdata.email.value,len_email);
		fdata.email.focus();return;}

	
	else if (!fdata.question.value){
		alert('비밀번호 체크용 질문란이 비어있습니다.');fdata.question.focus();return;}
	else if (len_Question < txtRsLength(fdata.question.value)){
		alert(len_Question + 'Byte 까지만 입력할 수 있습니다.\n(한글은 2Byte 입니다.)');
		fdata.question.value = txtRsCut(fdata.question.value,len_Question);
		fdata.question.focus();return;
		}
	if (!fdata.answer.value){
		alert('비밀번호 체크용 답변란이 비어있습니다.');fdata.answer.focus();return;}
	else if (len_Base < txtRsLength(fdata.answer.value)){
		alert(len_Base + 'Byte 까지만 입력할 수 있습니다.\n(한글은 2Byte 입니다.)');
		fdata.answer.value = txtRsCut(fdata.answer.value,len_Base);
		fdata.answer.focus();return;}
	
	else if (!fdata.pass.value) {
		alert('계정의 비밀번호를 입력하세요');
		fdata.pass.focus();return;}
	
	fdata.birthday.value = fdata.b1.value + fdata.b2.value + fdata.b3.value.trim();
	
	
	
	/** 제이쿼리 : 데이터 전달 AJAX **/
	/////////////////////////////
	var sendString = $("form[name=updateUserInfo]").serialize();
	//alert(sendString);
	$(document).ready(function() {
		$.ajax('/mypage/Infoupdate.do', {
			type : "post",
			data : sendString,
			cache:false,
			success : function(data) {
				
				if(data == 1){
					alert('사용자 정보 업데이트 완료!');
				} else if (data == 2 ) {
					alert('Error : 비밀번호를 입력하고 진행하세요.');
				} else {
					alert('Error : 비밀번호가 틀렸습니다.');fdata.pass.focus();
				}
				nchks = 1;
			}
		});
	});
	/////////////////////////////
}
/*********************************/

//닉네임 중복 체크
function check_nick(fdata,maxLength){
	// nick is null
	if (!fdata.nick.value) {
		alert('닉네임을 입력해주세요');fdata.nick.focus();
		return;
	} // check : old nick
	else if (nick_old == fdata.nick.value){
		if(!confirm('기존 닉네임을 그대로 사용하시겠습니까?')){
			alert('닉네임을 수정한 후 다시 체크해 주세요.');
			nchks=0;return;
		} else {
			alert('닉네임으로 ' + nick_old + ' 를 그대로 사용합니다.');
		}
	} // check : lenhth
	else if (maxLength < txtRsLength(fdata.nick.value)) {
		alert(maxLength + 'Byte 까지만 입력할 수 있습니다.\n(한글은 2Byte 입니다.)');
		fdata.nick.value = txtRsCut(fdata.nick.value,maxLength);
		return;
	} else {
	/////////////////////////////
		$(document).ready(function() {
			$.ajax('../user/ChkJoin.do?set=nick&value='+fdata.nick.value, {
				cache:false,
				success : function(data) {
					
					if(data == 1){
						alert('존재하는 닉네임입니다.');nchks=0;return;
					} else if (data == 2 ) {
						alert('닉네임을 입력하고 실행해 주세요.');nchks=0;return;
					} else {
						alert('사용 가능한 닉네임입니다.');nchks=1;
					}
					nchks = 1;
				}
			});
		});
	/////////////////////////////
	}
	nchks = 1;
}

//글자 길이 반환 : 한글 및 특수문자 UTF-8 은 2글자로
function txtRsLength(input){
	var byteLength = 0;
	
	for (var inx = 0; inx < input.length; inx++) {
        var oneChar = escape(input.charAt(inx));
        if (oneChar.length == 1) {
            byteLength++;
        } else if (oneChar.indexOf("%u") != -1) {
            byteLength += 2;
        } else if (oneChar.indexOf("%") != -1) {
            byteLength += oneChar.length / 3;
        }
    }//alert(byteLength);
	return byteLength;
}
//글자길이 체크
function txtRsCut(txt,cut){
	var byteLength = 0;var rs = "";
	
	for (var inx = 0; inx < txt.length; inx++) {
        var oneChar = escape(txt.charAt(inx));
        if (oneChar.length == 1) {
            byteLength++;
        } else if (oneChar.indexOf("%u") != -1) {
            byteLength += 2;
        } else if (oneChar.indexOf("%") != -1) {
            byteLength += oneChar.length / 3;
        }
        if (byteLength <= cut)
        {rs = rs + unescape(oneChar);}
    }//alert(rs);
    return rs;
}
//생년월일 체크 전용. 0~9 체크
function chkDay(text){
	var _chk = true; _sp = /\s+/;var msg="";

	for(var i=1; i<text.length;i++){
		var ch = text[i].charCodeAt();
		var pt = ((ch >= 0x30 && ch <= 0x39))
		_chk = _chk && pt
	}
	if(!_chk) {
		msg = msg + "숫자로만 구성해 주세요";
		alert(msg);
	}
	return _chk;
}

</script>


<table border="0" align="center" cellpadding="0" cellspacing="2" class="base">
<caption>※ 개인정보 수정</caption>
<colgroup width="140px" style="margin-right:10px;background-color: #cccccc;">
<form name="updateUserInfo" id="updateUserInfo" method="post">
<tr><td colspan="2" class="1"></td></tr>
<tr><td colspan="2" class="1" align="center">정보를 입력한 후 확인 버튼을 눌러주세요.</td></tr>
<tr><td colspan="2" class="1"></td></tr>
<tr><td>아이디</td><td>${userdata.id}</td></tr>
<tr><td>닉네임</td><td>
	<input type="text" name="nick" id="nick" value="${userdata.nick}" onclick="nickchknull()" maxlength="12">
	<input type="button" value="닉네임 중복 체크" onclick="check_nick(this.form,12)" style="height:22px;width: 120px;">	
	</td></tr>
<tr><td colspan="2" class="1"></td></tr>
<tr><td>이름</td><td>${userdata.name}</td></tr>
<tr><td>생년월일</td><td>
	
	<input type="text" name="b1" id="b1" value="${fn:substring(userdata.birthday, 0, 4)}" maxlength="4" style="width: 40px;"> 년
		<input type="text" name="b2" id="b2" value="${fn:substring(userdata.birthday, 4, 6)}" maxlength="2" style="width: 30px;"> 월
		<input type="text" name="b3" id="b3" value="${fn:substring(userdata.birthday, 6, 8)}" maxlength="2" style="width: 30px;"> 일
		<input type="hidden" name="birthday" id="birthday" value="${userdata.birthday}">
	</td></tr>
<tr><td>이메일</td><td>
	<input type="text" name="email" id="email" value="${userdata.email}" maxlength="40" style="width: 260px;">
	</td></tr>
<tr><td colspan="2" class="1"></td></tr>
<tr><td colspan="2" align="center">계정 정보 분실시 정보 확인을 위한 질문/답변입니다.</td></tr>
<tr><td colspan="2" class="1"></td></tr>
<tr><td>비밀번호 질문</td><td>
	<input type="text" name="question" id="question" value="${userdata.question}" maxlength="50" style="width: 260px;">
	</td></tr>
<tr><td>비밀번호 답변</td><td>
	<input type="text" name="answer" id="answer" value="${userdata.answer}" maxlength="12" style="width: 260px;">
	</td></tr>
<tr><td colspan="2" class="1"></td></tr>
<tr><td colspan="2" align="center">최종 확인을 위하여 계정의 비밀번호를 입력해주세요.</td></tr>
<tr><td colspan="2" class="1"></td></tr>
<tr><td>비밀번호</td><td>
	<input type="text" name="pass" id="pass" value="">
	</td></tr>
<tr><td colspan="2" class="1"></td></tr>
<tr><td colspan="2" align="center">
		<input type="reset" value="다시 입력" style="height:22px;width: 120px;">
		<input type="button" value="수정 완료" style="height:22px;width: 120px;" onclick="check(this.form)">
	</td></tr>
<tr><td colspan="2" class="1"></td></tr>
</form>
</table>